﻿'Params
'artist (Required (unless mbid)] : The artist name
'mbid (Optional) : The musicbrainz id for the artist
'autocorrect[0|1] (Optional) : Transform misspelled artist names into correct artist names, returning the correct version instead. The corrected artist name will be returned in the response.
'limit (Optional) : The number of results to fetch per page. Defaults to 50.
'page (Optiona) : The page number to fetch. Defaults to first page.
'festivalsonly[0|1] (Optional) : Whether only festivals should be returned, or all events.
'api_key (Required) : A Last.fm API key.

'Auth
' This service does not require authentication. 

Public Structure ArtistGetEventsResponse

End Structure

Public Class ArtistGetEvents
	Inherits BaseRequest
	Dim artist As String
	Dim mbid As String
	Dim autocorrect As String
	Dim limit As String
	Dim page As String
	Dim festivalsonly As String

	Public xmlresponse As XDocument = Nothing

	Public Sub New(artist As String, mbid As String, autocorrect As String, limit As String, page As String, festivalsonly As String)
		Me.artist = artist
		Me.mbid = mbid
		Me.autocorrect = autocorrect
		Me.limit = limit
		Me.page = page
		Me.festivalsonly = festivalsonly
	End Sub

	Public Sub sendRequest()
        ClearMembers()

        AddMember("method", "artist.getEvents")
        AddMember("artist", artist, String.IsNullOrEmpty(mbid))
        AddMember("limit", limit, False)
        AddMember("mbid", mbid, False)
        AddMember("autocorrect", autocorrect, False)
        AddMember("page", page, False)
        AddMember("api_key", My.Settings.api_key, False)

        xmlresponse = sendGETResponse(True)
	End Sub

	Public Function getResponse() As ArtistGetEventsResponse

		Return New ArtistGetEventsResponse
	End Function

End Class
